package Dane;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.farng.mp3.MP3File;
import org.farng.mp3.TagException;
import org.farng.mp3.id3.ID3v1;

/**
 * Klasa reprezentuje plik MP3
 * @author lukeh
 * @version 2.0
 */
public class Mp3File implements java.lang.Comparable
  {
    public String Autor;/** Nazwa autora*/
    public String Tytul;/** Tytuł utworu*/
    public String Album;/**Album utworu*/
    public String Adres;/**Adres pliku na dysku*/
    public Mp3File()
    {
        
    }
    /**
     * Konstruktor pobiera dane (tagi) z pliku
     * rzuca błędami odczytu pliku
     * @param addr - adres pliku
     * @throws java.io.IOException
     */
    public Mp3File(String addr)
    {
      MP3File m;
        try
           {
            m = new MP3File(addr);
            Tytul= m.getFilenameTag().composeFilename();
            Adres = addr;
            if(m.hasID3v1Tag())
            {
            ID3v1 id = m.getID3v1Tag();
            Autor = id.getArtist();
            if(Autor.compareTo("")==0) Autor = "Nieznany";
            Tytul = id.getTitle();
            if(Tytul.compareTo("")==0) Tytul = m.toString();
            Album = id.getAlbum();
             if(Album.compareTo("")==0) Album = "Nieznany";
            }
            else
            {
                Autor=Album="Nieznany";
            }
        }
//        } catch (IOException ex)
//            {
//            Logger.getLogger(Mp3File.class.getName()).log(Level.SEVERE, null, ex);
    //        }
      catch (TagException ex)
            {
             Autor=Album="Nieznany";

                Logger.getLogger(Mp3File.class.getName()).log(Level.SEVERE, null, ex);
            }
      catch(IOException e)
      {
          System.out.println("Błąd otwarcia pliku");
      }


    }
/**
 * Pozwala na porównywanie plików MP3 względem nazwy
 * @param arg0 - plik MP3 do porównania
 * @return - wyniek porównania
 */
    public int compareTo(Object arg0)
        {
            return Tytul.compareTo(((Mp3File)arg0).Tytul);
        }
  }
